Eclipse Platform
Pre-release 3.0

org.eclipse.jface.text.source
Class LineChangeHover

java.lang.Object
  extended byorg.eclipse.jface.text.source.LineChangeHover
All Implemented Interfaces:
IAnnotationHover, IAnnotationHoverExtension

public class LineChangeHover
extends Object
implements IAnnotationHover, IAnnotationHoverExtension

A hover for line oriented diffs. It determines the text to show as hover for a certain line in the document.

Since:
3.0

Constructor Summary
LineChangeHover()
           
 
Method Summary
protected  Point computeLineRange(ISourceViewer viewer, int line, int min, int max)
          Computes the block of lines which form a contiguous block of changes covering line.
protected  String decorateText(List diffInfos, int maxLines)
          Takes a list of ILineDiffInfos and computes a hover of at most maxLines.
protected  String formatSource(String content)
          Formats the source w/ syntax coloring etc.
 String getHoverInfo(ISourceViewer sourceViewer, int lineNumber)
          Returns the text which should be presented in the a hover popup window.
 String getHoverInfo(ISourceViewer sourceViewer, int lineNumber, int first, int number)
          Returns the text which should be presented in the a hover popup window.
 IInformationControlCreator getInformationControlCreator()
          Returns the information control creator of this annotation hover.
 ITextSelection getLineRange(ISourceViewer viewer, int line, int first, int number)
          Returns the range of lines that are covered by this hover for the given ISourceViewer at model line line.
protected  String getTabReplacement()
          Consults the preferences for the number of spaces a tab should be displayed as.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LineChangeHover

public LineChangeHover()
Method Detail

getHoverInfo

public String getHoverInfo(ISourceViewer sourceViewer,
                           int lineNumber,
                           int first,
                           int number)
Description copied from interface: IAnnotationHoverExtension
Returns the text which should be presented in the a hover popup window. This information is requested based on the specified line number.

Specified by:
getHoverInfo in interface IAnnotationHoverExtension
Parameters:
sourceViewer - the source viewer this hover is registered with
lineNumber - the line number for which information is requested
first - the first line in viewer's document to consider
number - the number of lines in viewer's document to consider
Returns:
the requested information or null if no such information exists

getHoverInfo

public String getHoverInfo(ISourceViewer sourceViewer,
                           int lineNumber)
Description copied from interface: IAnnotationHover
Returns the text which should be presented in the a hover popup window. This information is requested based on the specified line number.

Specified by:
getHoverInfo in interface IAnnotationHover
Parameters:
sourceViewer - the source viewer this hover is registered with
lineNumber - the line number for which information is requested
Returns:
the requested information or null if no such information exists

getLineRange

public ITextSelection getLineRange(ISourceViewer viewer,
                                   int line,
                                   int first,
                                   int number)
Description copied from interface: IAnnotationHoverExtension
Returns the range of lines that are covered by this hover for the given ISourceViewer at model line line.

Specified by:
getLineRange in interface IAnnotationHoverExtension
Parameters:
viewer - the viewer which the hover is queried for
line - the line which a hover is displayed for
first - the first line in viewer's document to consider
number - the number of lines in viewer's document to consider
Returns:
the selection in the document displayed in viewer containing line that is covered by the hover information returned by the receiver.

formatSource

protected String formatSource(String content)
Formats the source w/ syntax coloring etc. This implementation replaces tabs with spaces. May be overridden by subclasses.

Parameters:
content - the hover content
Returns:
content reformatted

getTabReplacement

protected String getTabReplacement()
Consults the preferences for the number of spaces a tab should be displayed as.

Returns:
a String consisting of spaces that will replace one tab character in the displayed source.

decorateText

protected String decorateText(List diffInfos,
                              int maxLines)
Takes a list of ILineDiffInfos and computes a hover of at most maxLines. Added lines are prefixed with a '+', changed lines with '>' and deleted lines with '-'.

Deleted and added lines can even each other out, so that a number of deleted lines get displayed where - in the current document - the added lines are.

Parameters:
diffInfos - a List of ILineDiffInfo
maxLines - the maximum number of lines. Note that adding up all annotations might give more than that due to deleted lines.
Returns:
a String suitable for hover display

computeLineRange

protected Point computeLineRange(ISourceViewer viewer,
                                 int line,
                                 int min,
                                 int max)
Computes the block of lines which form a contiguous block of changes covering line.

Parameters:
viewer - the source viewer showing
line - the line which a hover is displayed for
min - the first line in viewer's document to consider
max - the last line in viewer's document to consider
Returns:
the selection in the document displayed in viewer containing line that is covered by the hover information returned by the receiver.

getInformationControlCreator

public IInformationControlCreator getInformationControlCreator()
Description copied from interface: IAnnotationHoverExtension
Returns the information control creator of this annotation hover.

Specified by:
getInformationControlCreator in interface IAnnotationHoverExtension
Returns:
the information control creator

Eclipse Platform
Pre-release 3.0

Copyright (c) IBM Corp. and others 2000, 2003. All Rights Reserved.